Seznam predloh v Sinee2002

Otázka od: Lebeda David

24. 10. 2002 16:02

Ahojte vsichni,

pouzivate nekdo komponentu PrintDialogSinea v Sinee2002 se zapnutym
comboboxem na volbu predlohy? Snazim se to nejak rozchodit, ale moc se mi
nedari.

Co potrebuji. Mam aplikaci a s ni dodavam jednu predlohu pts. V aplikaci je
jedna
komponenta Sestava oprena o tuto predlohu a jeden PrintDialogSinea. Uzivatel si

sam muze vytvaret vlastni sestavy. Pred tiskem chci, aby si v tiskovem dialogu
mohl
zvolit predlohu. A ted problemy:

1) Pred zobrazenim printdialogu nastavim PrintDialogSinea1.ReportName :=
Sestava1.ReportName. To vede k tomu, ze combo s nabidkou sestav v printdialogu

obsahuje jakysi popis, patrne uchovavany v pts souboru, ale seznam jeho items
je
prazdny. Obslouzim tedy udalost na komponente PrintDialogSinea1 -
OnLoadReportList tak, ze s pomoci FindFirst/FindNext projdu adresar aplikace a
hledam pts soubory. Tim se do comboboxu na printdialogu dostanou jmena souboru
(ale ne jejich popisy). Proc tedy pri prirazeni ReportName se zobrazi popis a
pri
tomto zpusobu ne?

2) Pri kazdem kliknuti na combobox s nabidkou sestav na printdialogu se znovu
vola
nacteni items. To se nastesti da obejit tim, ze pokud tam uz nejake items jsou,
tak uz
combo neplnim, ale bylo-li combo prazdne, pak tohle kliknuti nevede k jeho
rozbaleni. Musi se tudiz kliknout jeste jednou.

3) Takze situace je takovato: Objevi se mi printdialog a v comboboxu s nabidkou

sestav vidim popis standardni sestavy. Jakmile na to combo kliknu mysi,
vyprazdni
se. Po dalsim kliknuti se rozbali, ale je tam jen nabidka souboru. Potrebuji,
aby
jednak to combo pri kliknuti na nej nesmazalo svuj obsah a jednak aby vzdy
zobrazovalo bud pouze nazvy souboru nebo popisy pts sestav, ale ne jednou tak a

jednou tak, jak jsem popsal.

Je mozne, ze delam neco spatne, ale nezda se mi, ze by prirucka praci s combem
sestav na printdialogu nejak popisovala, zdrojaky nemam, tak nevim, odkud mam
zjistit, jak na to jit spravne.

Pokud nekdo vite, poradte. Diky.

David Lebeda

Odpovedá: Vaclav Krmela

24. 10. 2002 20:11

> From: Lebeda David
>
> 1) Pred zobrazenim printdialogu nastavim
> PrintDialogSinea1.ReportName :=
> Sestava1.ReportName. To vede k tomu, ze combo s nabidkou
> sestav v printdialogu
> obsahuje jakysi popis, patrne uchovavany v pts souboru,

Ano, to je v poradku

> ale seznam jeho items je
> prazdny. Obslouzim tedy udalost na komponente PrintDialogSinea1 -
> OnLoadReportList tak, ze s pomoci FindFirst/FindNext projdu
> adresar aplikace a hledam pts soubory.

Toto je zbytecne, ComboBoxPredloha umi vyhledat soubory sam.
Staci vyplnit do ReportMask masku hledanych souboru.
Ja pouzivam napriklad 'pts\*.pts', kdyz jsou predlohy v podadresari PTS

>
> 2) Pri kazdem kliknuti na combobox s nabidkou sestav na
> printdialogu se znovu vola nacteni items.

To je v poradku, protoze uzivatel muze predlohy tvorit
nove a pokud by se seznam neobnovoval, nove vytvorene
predlohy by v nem nebyly.

> 3) Takze situace je takovato: ....

Vsechny vedlejsi efekty jsou zpusobeny nespravnou
a nevhodne pouzitou obsluhou udalosti nacitani
predloh. V tomto pripade doporucuji nedelat
vlastni obsluhu a ponechat to ve vychozim stavu.


> aby vzdy
> zobrazovalo bud pouze nazvy souboru nebo popisy pts sestav,
> ale ne jednou tak a jednou tak.

Prednostne se zobrazuje popis sestavy.
- uvadi se jako property v ObjectInspectoru
- dodatecne lze zmenit ve vlastnostech sestavy
  pri editaci predlohy
- uklada se jako prvni radek souboru predlohy
Pokud tento popis chybi, pouzije se nouzove
nazev souboru s predlohou.


> Je mozne, ze delam neco spatne, ale nezda se mi, ze by
> prirucka praci s combem
> sestav na printdialogu nejak popisovala, zdrojaky nemam, tak
> nevim, odkud mam zjistit, jak na to jit spravne.

TComboBoxPredloha je v unitu SestavyC
TPrintDialogSinea je v unitu Sest_Dlg
Oba zdrojove texty jsou obvykle soucasti vsech verzi
vcetne demonstracni verze. Alespon ve verzi X.39
to tak bylo. Viz soubor SiSest3.zip na
http://www.sinea.cz/default.asp?page=50
Zdrojovy text pouziti obou komponent je v DemoZdr tamtez.
Konkretne to je v aplikaci na strance Objekty rizeni tisku
(Form7).


Vaclav Krmela